import random
# # 1. 创建一个列表`list1`，其包含元素 1, 2, 3, 4, 5。
# list1 = [1,2,3,4,5]
# # 2. 向`list1` 添加一个元素 6。
# list1.append(6)
# # 3. 从`list1` 中删除元素 3。
# list1.remove(3)
# # 4. 修改`list1` 中的第二个元素值为 8。
# list1[1] = 8
# # 5. 找出`list1` 中值为 8 的元素索引。
# for i in range(len(list1)):
#     if list1[i] == 8:
#         print("8的索引：",i)
# # 6. 遍历`list1`，打印每个元素的值。
# for i in list1:
#     print("6题：",i)
# # 7. 利用循环，将一个新列表 `7, 8, 9]` 的每个元素添加到`list1` 的末尾。
# newList = [7,8,9]
# for i in range(len(newList)):
#     list1.append(newList[i])
# # 8. 使用一个命令，将列表 `10, 11, 12]` 添加到`list1` 的末尾。
# list1.extend([10,11,12])
# # 9. 使用切片操作，获取`list1` 第三个元素到第五个元素（包含第五个元素）。
# print("切片：",list1[2:5:1])
# # 10. 将`list1` 的第三个元素修改为两个新元素 `13, 14]`（不是列表中的一个列表，而是将两个新元素插入到指定位置）。
# list1[2:3] = [13,14]
#
# print(list1)


# param:进阶
my_list = [3, "apple", 9, "banana", 7, "cherry", 2, "date", 5, "elderberry"]
# 1. 向my_list中添加一个元素"fig"。
# my_list.append("fig")
# print(my_list)

# 2. 从my_list中删除元素"banana"。
# my_list.remove("banana")
# print(my_list)

# 3. 将元素7修改为字符串"grape"。
# my_list[4] = 'grape'
# print(my_list)

# 4. 查找并打印元素"cherry"的索引值。
# for i in range(len(my_list)):
#     if my_list[i] == "cherry":
#         print(my_list[i-1])

# 5. 遍历my_list并打印每个元素。
# for i in my_list:
#     print(i,end=' ')

# 6. 在"cherry"后面插入新元素"kiwi"。
# for i in range(len(my_list)):
#     if my_list[i] == 'cherry':
#         my_list.insert(i+1,'kiwi')
# print(my_list)

# 7. 使用索引查找并打印第三个元素。
# print(my_list[2])

# 8. 使用负数索引找到并打印倒数第二个元素。
# print(my_list[-2])

# 9. 使用切片操作获取第三个至第七个元素并打印结果。
# print(my_list[2:7:1])

# 10. 使用切片操作反转整个列表并打印结果。
# print(my_list[::-1])

# 11. 对列表中的字符串进行排序，并保留数字在原位。
# sort_string = sorted([item for item in my_list if isinstance(item,str)])
# index = 0
# for i in range(len(my_list)):
#     if type(my_list[i]) == str:
#         my_list[i] = sort_string[index]
#         index+=1
# print(my_list)

# 12. 将my_list中的数字替换为它们对应的字符串形式（如1->'one'），不改变列表中原有的字符串。
# num_to_word={
#     1:'one',
#     2:'two',
#     3:'three',
#     4:'four',
#     5:'five',
#     6:'six',
#     7:'seven',
#     8:'eight',
#     9:'nine'
# }
#
# for i in range(len(my_list)):
#     if isinstance(my_list[i],int):
#         my_list[i] = num_to_word.get(my_list[i])
# print(my_list)


# param:复杂
even_number=[]

# 1. 创建一个列表包含从1到100的所有偶数。
for i in range (1,101):
    if i%2 == 0:
        even_number.append(i)
# print(even_number)

# 2. 将上述列表中所有偶数替换为它们的平方。
# for i in range(len(even_number)):
#     even_number[i] = even_number[i]**2
# print(even_number)

# 3. 从上述列表中删除所有大于1000的数字。
# even_number = [i for i in even_number if i<1000]
# print(even_number)
# 4. 将列表逆序。
# even_number = even_number[::-1]
# print(even_number)

# 5. 使用切片操作取出列表中的前10个元素。
# tmp_list = even_number[:10]
# print(tmp_list)

# 6. 将一个新列表`[101, 102, 103]`加到现有列表的末尾。
# new_list = [101,102,103]
# even_number.append(new_list)
# print(even_number)

# 7. 计算列表中元素的平均值。
# tmp = 0
# for i in even_number:
#     tmp += i
# print(tmp/len(even_number))

# 8. 找到列表中的最大值和最小值。
# print("max",max(even_number))
# print("min",min(even_number))

# 9. 找出列表中第一次出现的11的索引位置。
# try:
#     index_of_11 = even_number.index(11)
# except ValueError:
#     index_of_11 = -1
# print(index_of_11)

# 10. 用循环遍历列表，把每个数字替换为其对应的字符形式（例如：1替换为'1'）。注意使用不同类型的循环来实现。
# str_list = []
# for i in even_number:
#     str_list.append(str(i))
# print(str_list)

# 11. 将列表中的所有元素转换成浮点数形式。
# float_list = []
# for i in even_number:
#     float_list.append(float(i))
# print(float_list)

# 12. 找出列表中所有大于50的元素个数。
# count_bg_50 = sum(1 for i in even_number if i>50)
# print(count_bg_50)

# 13. 在列表的第3个位置插入数字99。
# even_number.insert(2,99)
# print(even_number)

# 14. 删除列表中的最后一个元素。
# even_number.pop()
# print(even_number)

# 15. 使用列表推导式创建一个新列表，包含原列表中每个数字乘以2的结果。
# new_list = [i*2 for i in even_number]
# print(new_list)

# 16. 将列表分成两部分，一部分是小于等于50的数，另一部分是大于50的数。
# be_50 = [i for i in even_number if i >50]
# sm_50 = [i for i in even_number if i <=50]
#
# print(be_50)
# print(sm_50)

# 17. 将列表转换为一个字典，其中列表元素作为键，其在列表中的索引作为值。
# num_dict = {value: index for index, value in enumerate(even_number)}
# print(num_dict)

# 18. 使用`enumerate`函数遍历列表，并打印元素及其索引。
# for index,value in enumerate(even_number):
#     print(f"{index}:{value}")

# 19. 从列表中随机取出一个元素。
# if even_number:
#     random_element = random.choice(even_number)
# else:
#     random_element = None
# print(random_element)

# 20. 将列表保存到一个txt文件里，每个元素占一行。
# with open('output.txt', 'w') as f:
#     for item in even_number:
#         f.write(str(item) + '\n')
#
# print("操作完成，结果已保存到 output.txt 文件中。")